package com.stone.design.mode.strategy;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

/**
 * @author wenpanfeng
 */
@Service
public class StrategyTestServiceImpl implements StrategyTestService {

    /**
     * 注入实例，通过该对象从容器中通过不同的codeType值获取不同的策略
     */
    @Autowired
    CodeTypeHandlerContext handlerContext;

    @Override
    public void testStrategy(String codeType) {
        // 通过传入的CodeType去容器中找到对应的策略实例
        PushStrategy pushStrategy = handlerContext.getHandlerInstance(codeType);
        // 执行具体策略的push方法
        pushStrategy.push();
    }
}